package com.zl.demo.utils;

import org.springframework.stereotype.Component;

import javax.persistence.Table;
import java.lang.reflect.Field;

@Component
public class Classzz<T,N,E> {

    /**
     * 获取实体的所有属性名称
     * @param t
     * @return
     */
    public  E getDeclaredFieldsInfo(T t){
        Class<?> clazz = t.getClass();
        Field[] fields=clazz.getDeclaredFields();
        String[] field = new String[fields.length] ;
        for (int i = 0; i < fields.length; i++) {
            field[i]=fields[i].getName();
        }
        return (E)field;
    }

    /**
     * 获取实体的注解Table的name属性
     * @return
     */
    public N getDeclaredTableName(T t){
        // 获取表名
        Table table = t.getClass().getAnnotation(Table.class);
        return (N)table.name();
    }
}
